<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //定义一个构造函数
        function Father(name){
            //添加name属性，默认直接赋值
            this.name = '马云'
        }
        Father.prototype.giveMoney = function(){
            alert('1213')
        };
        //定义一个构造函数
        function Son(age){
            //添加age属性
            this.age = 18;
        }
        //关键地方 ,把son的构造方法的原型给替换成Father的对象
        Son.prototype = new Father();
        //给son添加方法
        Son.prototype.getMoney = function(){
            alert('32323')
        }
        var son1 = new Son();
        //发现不仅可以访问Son中定义属性和Son原型中定义的方法，也可以访问Father中定义的属性和Father原型中的方法。
            //这样就通过继承完成了类型之间的继承。 
            // Son继承了Father中的属性和方法，当然还有Father原型中的属性和方法。
        son1.giveMoney()
        son1.getMoney();
        alert("Father定义的属性：" + son1.name);
        alert("Son中定义的属性：" + son1.age);

    </script>
</head>
<body>
    
</body>
</html>
